package com.css.openapi.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.css.common.core.enums.OrderKpStatusEnum;
import com.css.openapi.BO.*;
import com.css.openapi.entity.JctyDdxx;


import javax.validation.Valid;

/**
 * 基础通用订单信息表(JctyDdxx)表服务接口
 *
 * @author xiaolongwei
 * @since 2024-12-09 15:56:28
 */
public interface JctyDdxxService extends IService<JctyDdxx> {



    /**
     * 组装实体数据
     * @param jctyDdxx 订单信息
     * @param extraV2VO extra
     */
    void fillBean(JctyDdxx jctyDdxx, ExtraV2VO extraV2VO);


    /**
     * 开具蓝色发票
     *
     * @param param 参数
     * @return {@link IssueBlueInvoiceResponse }
     */
    IssueBlueInvoiceResponse issueBlueInvoice(IssueBlueInvoiceRequest param);

    /**
     * 查询订单状态
     *
     * @param param 参数
     * @return {@link QueryOrderStatusResponse }
     */
    QueryOrderStatusResponse queryOrderStatus(QueryOrderStatusRequest param);


    /**
     * 下载发票
     *
     * @param param 参数
     * @return {@link DownloadInvoiceResponse }
     */
    DownloadInvoiceResponse downloadInvoice(@Valid DownloadInvoiceRequest param);

    /**
     * 替换发票
     *
     * @param param 参数
     * @return {@link ReplaceInvoiceResponse }
     */
    ReplaceInvoiceResponse replaceInvoice(@Valid FpttInfoVO param);

    /**
     * 开具红色发票
     *
     * @param param 参数
     * @return {@link IssueRedInvoiceResponse }
     */
    IssueRedInvoiceResponse issueRedInvoice(@Valid IssueRedInvoiceRequest param);



}

